Adaptive routing is a process for determining the optimal path a data packet should follow through a network to arrive at a specific destination. Adaptive routing uses algorithms and routing protocols that may read and respond to changes in network topology and dynamically retrieve information about network congestion and node availability to route packets. When a packet arrives at a node, the node uses information shared among network routers to calculate which path is most suitable. If the default paths are congested, the packet may be sent along a different path and the information may be shared among network devices. The purpose of adaptive routing is to prevent packet delivery failure, improve network performance and relieve network congestion.